-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[fix](cloud)Fix create dynamic table race with insert overwrite
#59489
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[fix](cloud)Fix create dynamic table race with insert overwrite
#59489
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
af9cd0a to
65716c4
Compare
65716c4 to
4e4efb1
Compare
TPC-H: Total hot run time: 35222 ms |
TPC-DS: Total hot run time: 173947 ms |
ClickBench: Total hot run time: 27.64 s |
FE UT Coverage ReportIncrement line coverage |
yujun777
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
PR approved by anyone and no changes requested. |
5d3e332 to
14d4d5e
Compare
yujun777
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
run buildall |
TPC-H: Total hot run time: 34318 ms |
TPC-DS: Total hot run time: 175492 ms |
ClickBench: Total hot run time: 27.38 s |
FE UT Coverage ReportIncrement line coverage |
FE Regression Coverage ReportIncrement line coverage |
fe/fe-core/src/main/java/org/apache/doris/clone/DynamicPartitionScheduler.java
Show resolved
Hide resolved
gavinchou
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
PR approved by at least one committer and no changes requested. |
|
run cloud_p0 |
dataroaring
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…pache#59489) ### What problem does this PR solve? 1. Thread 1 executed a DROP TABLE operation, followed by a CREATE TABLE operation, initializing a dynamic partition (Partition A) in memory. 2. Due to an optimization in the cloud, batch partition edit logs were attempted; however, the edit log for Partition A was not yet synchronized to the followers. 3. Thread 2 began an INSERT INTO ... OVERWRITE PARTITION (*) operation, identifying Partition A in memory and writing a replace partition edit log. 4. In follower, the replay thread attempted to replay the replace partition edit log but found a dependency on Partition A, which was absent from memory, resulting in an exception and subsequent termination. Fix ``` 2025-12-30 16:10:42,774 ERROR (replayer|123) [EditLog.loadJournal():1445] replay Operation Type 210, log id: 1910 java.lang.NullPointerException at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:906) at org.apache.doris.catalog.OlapTable.checkPartition(OlapTable.java:2835) at org.apache.doris.catalog.OlapTable.replaceTempPartitions(OlapTable.java:2799) at org.apache.doris.catalog.Env.replayReplaceTempPartition(Env.java:6750) at org.apache.doris.persist.EditLog.loadJournal(EditLog.java:986) at org.apache.doris.catalog.Env.replayJournal(Env.java:3100) at org.apache.doris.catalog.Env$4.runOneCycle(Env.java:2862) at org.apache.doris.common.util.Daemon.run(Daemon.java:119) 2025-12-30 16:10:42,775 INFO (Thread-0|32) [DorisFE.lambda$start$0():159] Received shutdown signal, starting graceful shutdown... 2025-12-30 16:10:42,776 INFO (Thread-0|32) [DorisFE.gracefulShutdown():639] graceful shutdown finished ``` Issue Number: close #xxx Related PR: #xxx Problem Summary: ### Release note None ### Check List (For Author) - Test <!-- At least one of them must be included. --> - [x] Regression test - [ ] Unit Test - [ ] Manual test (add detailed scripts or steps below) - [ ] No need to test or manual test. Explain why: - [ ] This is a refactor/code format and no logic has been changed. - [ ] Previous test can cover this change. - [ ] No code files have been changed. - [ ] Other reason <!-- Add your reason? --> - Behavior changed: - [x] No. - [ ] Yes. <!-- Explain the behavior change --> - Does this need documentation? - [x] No. - [ ] Yes. <!-- Add document PR link here. eg: apache/doris-website#1214 --> ### Check List (For Reviewer who merge this PR) - [ ] Confirm the release note - [ ] Confirm test cases - [ ] Confirm document - [ ] Add branch pick label <!-- Add branch pick label that this PR should merge into -->
What problem does this PR solve?
Fix
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)